function plot_fdma_spectrum(user_signals, combined_signal, fs, carrier_freqs, bandwidth)
% plot_fdma_spectrum - 绘制FDMA系统的频谱图
%
% 输入参数:
%   user_signals     - 用户信号的元胞数组
%   combined_signal  - 合并后的FDMA信号
%   fs               - 采样频率 (Hz)
%   carrier_freqs    - 各用户载波频率数组 (Hz)
%   bandwidth        - 每个用户的带宽 (Hz)

% 创建新的图形窗口
figure('Name', 'FDMA频谱图', 'Position', [100, 100, 1000, 600]);

% 绘制每个用户的频谱
subplot(2, 1, 1);
hold on;

colors = {'r', 'g', 'b', 'c', 'm', 'y', 'k'};  % 不同用户使用不同颜色
num_users = length(user_signals);

for i = 1:num_users
    % 计算FFT
    N = length(user_signals{i});
    user_fft = fft(user_signals{i});
    user_fft_shifted = fftshift(user_fft);  % 将零频率移到中心
    
    % 计算频率轴
    freq = (-N/2:N/2-1)*(fs/N);
    
    % 绘制频谱幅度
    plot(freq, 20*log10(abs(user_fft_shifted)/N), colors{mod(i-1, length(colors))+1}, 'LineWidth', 1.5);
    
    % 标出载波频率
    line([carrier_freqs(i) carrier_freqs(i)], [-100 0], 'Color', colors{mod(i-1, length(colors))+1}, 'LineStyle', '--');
    text(carrier_freqs(i), -20, ['用户 ' num2str(i)], 'Color', colors{mod(i-1, length(colors))+1});
end

title('各用户频谱');
xlabel('频率 (Hz)');
ylabel('功率谱密度 (dB/Hz)');
grid on;
axis tight;
ylim([-100 0]);

% 绘制合并后的频谱
subplot(2, 1, 2);

% 计算合并信号的FFT
N = length(combined_signal);
combined_fft = fft(combined_signal);
combined_fft_shifted = fftshift(combined_fft);

% 计算频率轴
freq = (-N/2:N/2-1)*(fs/N);

% 绘制合并频谱
plot(freq, 20*log10(abs(combined_fft_shifted)/N), 'k', 'LineWidth', 2);

% 标出各用户的频带
hold on;
for i = 1:num_users
    % 计算用户带宽边界
    band_start = carrier_freqs(i) - bandwidth/2;
    band_end = carrier_freqs(i) + bandwidth/2;
    
    % 绘制用户带宽边界
    patch([band_start band_end band_end band_start], [-100 -100 -90 -90], colors{mod(i-1, length(colors))+1}, 'FaceAlpha', 0.3);
    text(carrier_freqs(i), -95, ['用户 ' num2str(i)], 'Color', colors{mod(i-1, length(colors))+1}, 'HorizontalAlignment', 'center');
end

title('FDMA合并频谱');
xlabel('频率 (Hz)');
ylabel('功率谱密度 (dB/Hz)');
grid on;
axis tight;
ylim([-100 0]);

% 添加总标题
sgtitle('FDMA频谱分析');

end 